home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 18 / fpc103.zip / SAVESCR.SEQ < prev    next >
Text File  |  1988-06-10  |  1KB  |  32 lines

  1. \ SAVESCR.SEQ   Routine to save and restore screen.     by Tom Zimmer
  2.  
  3. decimal
  4.  
  5. 0 constant svseg                \ screen save segment
  6.  
  7. : svinit        ( --- )         \ screen save initialization
  8.                 defers initstuff
  9.                 0 =: svseg
  10.                 16000 16 / 1+ alloc 8 =
  11.                 abort" Could not allocate memory for Screen save routine."
  12.                 nip =: svseg ;
  13.  
  14. ' svinit is initstuff
  15.  
  16. \ nestable save and restore up to three (3) times.
  17.  
  18. : savescr       ( --- )
  19.                 svseg 0= if exit then
  20.                 svseg 0 2dup 4000 + 12000 cmovel>       \ Make a hole in buf
  21.                 video-seg @ 0 svseg 0 4000 cmovel ;     \ & save screen in it.
  22.  
  23. : restscr       ( --- )
  24.                 svseg 0= if exit then
  25.                 svseg 0 video-seg @ 0 4000 cmovel       \ Restore screen &
  26.                 svseg 4000 over 0 12000 cmovel ;        \ compress buffer.
  27.  
  28. : recoverscr    ( --- )                                 \ get a copy of the
  29.                 svseg 0= if exit then                   \ last saved screen
  30.                 svseg 0 video-seg @ 0 4000 cmovel ;     \ Restore screen
  31.  
  32.